package com.retail.shopping.server.mapper;

import java.util.List;
import com.retail.shopping.common.domain.ShoppingCartMidden;
import com.retail.shopping.common.domain.request.CartInsertRequest;
import com.retail.shopping.common.domain.response.CartListResponse;
import org.apache.ibatis.annotations.Param;

/**
 * 购物车列表Mapper接口
 * 
 * @author retail
 * @date 2024-02-27
 */
public interface ShoppingCartMiddenMapper 
{
    /**
     * 查询购物车列表
     * 
     * @param middenId 购物车列表主键
     * @return 购物车列表
     */
    public ShoppingCartMidden selectShoppingCartMiddenByMiddenId(Long middenId);

    /**
     * 查询购物车列表列表
     * 
     * @param shoppingCartMidden 购物车列表
     * @return 购物车列表集合
     */
    public List<CartListResponse> selectShoppingCartMiddenList(ShoppingCartMidden shoppingCartMidden);

    /**
     * 新增购物车列表
     * 
     * @param shoppingCartMidden 购物车列表
     * @return 结果
     */
    public int insertShoppingCartMidden(ShoppingCartMidden shoppingCartMidden);

    /**
     * 修改购物车列表
     * 
     * @param shoppingCartMidden 购物车列表
     * @return 结果
     */
    public int updateShoppingCartMidden(ShoppingCartMidden shoppingCartMidden);

    /**
     * 删除购物车列表
     * 
     * @param middenId 购物车列表主键
     * @return 结果
     */
    public int deleteShoppingCartMiddenByMiddenId(Long middenId);

    /**
     * 批量删除购物车列表
     * 
     * @param middenIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteShoppingCartMiddenByMiddenIds(Long[] middenIds);

    ShoppingCartMidden selectCartMidden(CartInsertRequest cartInsertRequest);

    void updateCartMidden(CartInsertRequest cartInsertRequest);

    void insertCartMidden(CartInsertRequest cartInsertRequest);

    List<CartListResponse> selectCartList(Integer cartId);

    void updCart(String str);


    void deleteCartMiddenBySkuUser(@Param("cartId") Integer cartId, @Param("str") String str);

    List<CartListResponse> selectCartMergeList(@Param("cartIds") List<Integer> cartIds);
}
